<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>create_uncalib_descriptor_model [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_matching.html">Matching</a> / <a href="toc_matching_descriptorbased.html">Descriptor-Based</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">create_uncalib_descriptor_model</span><span data-if="c" style="display:none;">T_create_uncalib_descriptor_model</span><span data-if="cpp" style="display:none;">CreateUncalibDescriptorModel</span><span data-if="dotnet" style="display:none;">CreateUncalibDescriptorModel</span><span data-if="python" style="display:none;">create_uncalib_descriptor_model</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">create_uncalib_descriptor_model</span><span data-if="c" style="display:none;">T_create_uncalib_descriptor_model</span><span data-if="cpp" style="display:none;">CreateUncalibDescriptorModel</span><span data-if="dotnet" style="display:none;">CreateUncalibDescriptorModel</span><span data-if="python" style="display:none;">create_uncalib_descriptor_model</span></code> — Prepare a descriptor model for interest point matching.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>create_uncalib_descriptor_model</b>(<a href="#Template"><i>Template</i></a> :  : <a href="#DetectorType"><i>DetectorType</i></a>, <a href="#DetectorParamName"><i>DetectorParamName</i></a>, <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, <a href="#Seed"><i>Seed</i></a> : <a href="#ModelID"><i>ModelID</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_create_uncalib_descriptor_model</b>(const Hobject <a href="#Template"><i>Template</i></a>, const Htuple <a href="#DetectorType"><i>DetectorType</i></a>, const Htuple <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const Htuple <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const Htuple <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const Htuple <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, const Htuple <a href="#Seed"><i>Seed</i></a>, Htuple* <a href="#ModelID"><i>ModelID</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>CreateUncalibDescriptorModel</b>(const HObject&amp; <a href="#Template"><i>Template</i></a>, const HTuple&amp; <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, const HTuple&amp; <a href="#Seed"><i>Seed</i></a>, HTuple* <a href="#ModelID"><i>ModelID</i></a>)</code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>::<b>HDescriptorModel</b>(const HImage&amp; <a href="#Template"><i>Template</i></a>, const HString&amp; <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>)</code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>::<b>HDescriptorModel</b>(const HImage&amp; <a href="#Template"><i>Template</i></a>, const char* <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>)</code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>::<b>HDescriptorModel</b>(const HImage&amp; <a href="#Template"><i>Template</i></a>, const wchar_t* <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>::<b>CreateUncalibDescriptorModel</b>(const HImage&amp; <a href="#Template"><i>Template</i></a>, const HString&amp; <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>)</code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>::<b>CreateUncalibDescriptorModel</b>(const HImage&amp; <a href="#Template"><i>Template</i></a>, const char* <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>)</code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>::<b>CreateUncalibDescriptorModel</b>(const HImage&amp; <a href="#Template"><i>Template</i></a>, const wchar_t* <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HDescriptorModel.html">HDescriptorModel</a> <a href="HImage.html">HImage</a>::<b>CreateUncalibDescriptorModel</b>(const HString&amp; <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>) const</code></p>
<p>
<code><a href="HDescriptorModel.html">HDescriptorModel</a> <a href="HImage.html">HImage</a>::<b>CreateUncalibDescriptorModel</b>(const char* <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>) const</code></p>
<p>
<code><a href="HDescriptorModel.html">HDescriptorModel</a> <a href="HImage.html">HImage</a>::<b>CreateUncalibDescriptorModel</b>(const wchar_t* <a href="#DetectorType"><i>DetectorType</i></a>, const HTuple&amp; <a href="#DetectorParamName"><i>DetectorParamName</i></a>, const HTuple&amp; <a href="#DetectorParamValue"><i>DetectorParamValue</i></a>, const HTuple&amp; <a href="#DescriptorParamName"><i>DescriptorParamName</i></a>, const HTuple&amp; <a href="#DescriptorParamValue"><i>DescriptorParamValue</i></a>, Hlong <a href="#Seed"><i>Seed</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>CreateUncalibDescriptorModel</b>(<a href="HObject.html">HObject</a> <a href="#Template"><i>template</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorType"><i>detectorType</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamName"><i>detectorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamValue"><i>detectorParamValue</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamName"><i>descriptorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamValue"><i>descriptorParamValue</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Seed"><i>seed</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ModelID"><i>modelID</i></a>)</code></p>
<p>
<code>public <a href="HDescriptorModel.html">HDescriptorModel</a>(<a href="HImage.html">HImage</a> <a href="#Template"><i>template</i></a>, string <a href="#DetectorType"><i>detectorType</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamName"><i>detectorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamValue"><i>detectorParamValue</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamName"><i>descriptorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamValue"><i>descriptorParamValue</i></a>, int <a href="#Seed"><i>seed</i></a>)</code></p>
<p>
<code>void <a href="HDescriptorModel.html">HDescriptorModel</a>.<b>CreateUncalibDescriptorModel</b>(<a href="HImage.html">HImage</a> <a href="#Template"><i>template</i></a>, string <a href="#DetectorType"><i>detectorType</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamName"><i>detectorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamValue"><i>detectorParamValue</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamName"><i>descriptorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamValue"><i>descriptorParamValue</i></a>, int <a href="#Seed"><i>seed</i></a>)</code></p>
<p>
<code><a href="HDescriptorModel.html">HDescriptorModel</a> <a href="HImage.html">HImage</a>.<b>CreateUncalibDescriptorModel</b>(string <a href="#DetectorType"><i>detectorType</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamName"><i>detectorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DetectorParamValue"><i>detectorParamValue</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamName"><i>descriptorParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#DescriptorParamValue"><i>descriptorParamValue</i></a>, int <a href="#Seed"><i>seed</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>create_uncalib_descriptor_model</b>(<a href="#Template"><i>template</i></a>: HObject, <a href="#DetectorType"><i>detector_type</i></a>: str, <a href="#DetectorParamName"><i>detector_param_name</i></a>: Sequence[str], <a href="#DetectorParamValue"><i>detector_param_value</i></a>: Sequence[Union[int, float, str]], <a href="#DescriptorParamName"><i>descriptor_param_name</i></a>: Sequence[str], <a href="#DescriptorParamValue"><i>descriptor_param_value</i></a>: Sequence[Union[int, float, str]], <a href="#Seed"><i>seed</i></a>: int) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">create_uncalib_descriptor_model</span><span data-if="c" style="display:none">create_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">CreateUncalibDescriptorModel</span><span data-if="com" style="display:none">CreateUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">CreateUncalibDescriptorModel</span><span data-if="python" style="display:none">create_uncalib_descriptor_model</span></code> prepares a
descriptor model of an image region, which is passed in the image
<a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>, that can be used for descriptor-based matching.
By a subsequent call of <a href="find_uncalib_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></code></a> a
projective 2D transformation (homography) from <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a> to
a search image can be obtained. The center of gravity of the domain
region in <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a> is used as an origin of the model. In
contrast to <a href="create_calib_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">create_calib_descriptor_model</span><span data-if="c" style="display:none">create_calib_descriptor_model</span><span data-if="cpp" style="display:none">CreateCalibDescriptorModel</span><span data-if="com" style="display:none">CreateCalibDescriptorModel</span><span data-if="dotnet" style="display:none">CreateCalibDescriptorModel</span><span data-if="python" style="display:none">create_calib_descriptor_model</span></code></a>, no calibrated
camera is needed and hence the result of a subsequent matching is
a 2D projection. Note that the part of the object that is visible in the
<a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a> image needs to be planar.
</p>
<p>The descriptor model describes a set of points of interest. It
stores their locations and discriminative descriptions of their local
gray value neighborhood. The interest point extraction is parametrized
by <a href="#DetectorType"><i><code><span data-if="hdevelop" style="display:inline">DetectorType</span><span data-if="c" style="display:none">DetectorType</span><span data-if="cpp" style="display:none">DetectorType</span><span data-if="com" style="display:none">DetectorType</span><span data-if="dotnet" style="display:none">detectorType</span><span data-if="python" style="display:none">detector_type</span></code></i></a>, <a href="#DetectorParamName"><i><code><span data-if="hdevelop" style="display:inline">DetectorParamName</span><span data-if="c" style="display:none">DetectorParamName</span><span data-if="cpp" style="display:none">DetectorParamName</span><span data-if="com" style="display:none">DetectorParamName</span><span data-if="dotnet" style="display:none">detectorParamName</span><span data-if="python" style="display:none">detector_param_name</span></code></i></a> and
<a href="#DetectorParamValue"><i><code><span data-if="hdevelop" style="display:inline">DetectorParamValue</span><span data-if="c" style="display:none">DetectorParamValue</span><span data-if="cpp" style="display:none">DetectorParamValue</span><span data-if="com" style="display:none">DetectorParamValue</span><span data-if="dotnet" style="display:none">detectorParamValue</span><span data-if="python" style="display:none">detector_param_value</span></code></i></a>. The respective descriptor around the
interest points is parametrized by <a href="#DescriptorParamName"><i><code><span data-if="hdevelop" style="display:inline">DescriptorParamName</span><span data-if="c" style="display:none">DescriptorParamName</span><span data-if="cpp" style="display:none">DescriptorParamName</span><span data-if="com" style="display:none">DescriptorParamName</span><span data-if="dotnet" style="display:none">descriptorParamName</span><span data-if="python" style="display:none">descriptor_param_name</span></code></i></a> and
<a href="#DescriptorParamValue"><i><code><span data-if="hdevelop" style="display:inline">DescriptorParamValue</span><span data-if="c" style="display:none">DescriptorParamValue</span><span data-if="cpp" style="display:none">DescriptorParamValue</span><span data-if="com" style="display:none">DescriptorParamValue</span><span data-if="dotnet" style="display:none">descriptorParamValue</span><span data-if="python" style="display:none">descriptor_param_value</span></code></i></a>. The parameter <a href="#Seed"><i><code><span data-if="hdevelop" style="display:inline">Seed</span><span data-if="c" style="display:none">Seed</span><span data-if="cpp" style="display:none">Seed</span><span data-if="com" style="display:none">Seed</span><span data-if="dotnet" style="display:none">seed</span><span data-if="python" style="display:none">seed</span></code></i></a> seeds the
random number generator, which is used during the construction of the
descriptor implemented with <i>randomized ferns</i>. The returned
<a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a> is a reference to the generated
descriptor model. This model can be used for an efficient
detection of instances of the learned template with
<a href="find_uncalib_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></code></a>, allowing perspective
transformation between model and search image. As descriptor-based
matching relies on the existence of stable and discriminative points
of interest, the object to be detected must be textured, but not in a
repetitive way.
</p>
<h3>Detector parameters</h3>
<p>As mentioned, the detector is used for the extraction of stable
interest points within the image. By the parameter
<a href="#DetectorType"><i><code><span data-if="hdevelop" style="display:inline">DetectorType</span><span data-if="c" style="display:none">DetectorType</span><span data-if="cpp" style="display:none">DetectorType</span><span data-if="com" style="display:none">DetectorType</span><span data-if="dotnet" style="display:none">detectorType</span><span data-if="python" style="display:none">detector_type</span></code></i></a>, it is possible to select the interest point
operator to be used. Currently, <a href="points_lepetit.html"><code><span data-if="hdevelop" style="display:inline">points_lepetit</span><span data-if="c" style="display:none">points_lepetit</span><span data-if="cpp" style="display:none">PointsLepetit</span><span data-if="com" style="display:none">PointsLepetit</span><span data-if="dotnet" style="display:none">PointsLepetit</span><span data-if="python" style="display:none">points_lepetit</span></code></a>,
<a href="points_harris.html"><code><span data-if="hdevelop" style="display:inline">points_harris</span><span data-if="c" style="display:none">points_harris</span><span data-if="cpp" style="display:none">PointsHarris</span><span data-if="com" style="display:none">PointsHarris</span><span data-if="dotnet" style="display:none">PointsHarris</span><span data-if="python" style="display:none">points_harris</span></code></a>, and its binomial approximation
<a href="points_harris_binomial.html"><code><span data-if="hdevelop" style="display:inline">points_harris_binomial</span><span data-if="c" style="display:none">points_harris_binomial</span><span data-if="cpp" style="display:none">PointsHarrisBinomial</span><span data-if="com" style="display:none">PointsHarrisBinomial</span><span data-if="dotnet" style="display:none">PointsHarrisBinomial</span><span data-if="python" style="display:none">points_harris_binomial</span></code></a> are supported ('lepetit', 'harris',
'harris_binomial'). In case of templates or search images with a
low contrast, one of the Harris point operators should be used.
Depending on the selected <a href="#DetectorType"><i><code><span data-if="hdevelop" style="display:inline">DetectorType</span><span data-if="c" style="display:none">DetectorType</span><span data-if="cpp" style="display:none">DetectorType</span><span data-if="com" style="display:none">DetectorType</span><span data-if="dotnet" style="display:none">detectorType</span><span data-if="python" style="display:none">detector_type</span></code></i></a>, appropriate
parameter names and values can be set in <a href="#DetectorParamName"><i><code><span data-if="hdevelop" style="display:inline">DetectorParamName</span><span data-if="c" style="display:none">DetectorParamName</span><span data-if="cpp" style="display:none">DetectorParamName</span><span data-if="com" style="display:none">DetectorParamName</span><span data-if="dotnet" style="display:none">detectorParamName</span><span data-if="python" style="display:none">detector_param_name</span></code></i></a>
and <a href="#DetectorParamValue"><i><code><span data-if="hdevelop" style="display:inline">DetectorParamValue</span><span data-if="c" style="display:none">DetectorParamValue</span><span data-if="cpp" style="display:none">DetectorParamValue</span><span data-if="com" style="display:none">DetectorParamValue</span><span data-if="dotnet" style="display:none">detectorParamValue</span><span data-if="python" style="display:none">detector_param_value</span></code></i></a>.
</p>
<p>Possible parameter names for <a href="#DetectorParamName"><i><code><span data-if="hdevelop" style="display:inline">DetectorParamName</span><span data-if="c" style="display:none">DetectorParamName</span><span data-if="cpp" style="display:none">DetectorParamName</span><span data-if="com" style="display:none">DetectorParamName</span><span data-if="dotnet" style="display:none">detectorParamName</span><span data-if="python" style="display:none">detector_param_name</span></code></i></a> and corresponding
default values are:
</p>
<dl class="generic">

<dt><b> <i><span data-if="hdevelop" style="display:inline">'lepetit'</span><span data-if="c" style="display:none">"lepetit"</span><span data-if="cpp" style="display:none">"lepetit"</span><span data-if="com" style="display:none">"lepetit"</span><span data-if="dotnet" style="display:none">"lepetit"</span><span data-if="python" style="display:none">"lepetit"</span></i> :</b></dt>
<dd>

<dl class="generic">

<dt><b></b></dt>
<dd><p>
 [<i><span data-if="hdevelop" style="display:inline">'radius'</span><span data-if="c" style="display:none">"radius"</span><span data-if="cpp" style="display:none">"radius"</span><span data-if="com" style="display:none">"radius"</span><span data-if="dotnet" style="display:none">"radius"</span><span data-if="python" style="display:none">"radius"</span></i>, <i><span data-if="hdevelop" style="display:inline">'check_neighbor'</span><span data-if="c" style="display:none">"check_neighbor"</span><span data-if="cpp" style="display:none">"check_neighbor"</span><span data-if="com" style="display:none">"check_neighbor"</span><span data-if="dotnet" style="display:none">"check_neighbor"</span><span data-if="python" style="display:none">"check_neighbor"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'min_check_neighbor_diff'</span><span data-if="c" style="display:none">"min_check_neighbor_diff"</span><span data-if="cpp" style="display:none">"min_check_neighbor_diff"</span><span data-if="com" style="display:none">"min_check_neighbor_diff"</span><span data-if="dotnet" style="display:none">"min_check_neighbor_diff"</span><span data-if="python" style="display:none">"min_check_neighbor_diff"</span></i>, <i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'subpix'</span><span data-if="c" style="display:none">"subpix"</span><span data-if="cpp" style="display:none">"subpix"</span><span data-if="com" style="display:none">"subpix"</span><span data-if="dotnet" style="display:none">"subpix"</span><span data-if="python" style="display:none">"subpix"</span></i>]
</p></dd>

<dt><b></b></dt>
<dd><p>
 <i><span data-if="hdevelop" style="display:inline">[ 3, 1, 15, 30, 'interpolation']</span><span data-if="c" style="display:none">[ 3, 1, 15, 30, "interpolation"]</span><span data-if="cpp" style="display:none">[ 3, 1, 15, 30, "interpolation"]</span><span data-if="com" style="display:none">[ 3, 1, 15, 30, "interpolation"]</span><span data-if="dotnet" style="display:none">[ 3, 1, 15, 30, "interpolation"]</span><span data-if="python" style="display:none">[ 3, 1, 15, 30, "interpolation"]</span></i>
</p></dd>
</dl>
</dd>

<dt><b> <i><span data-if="hdevelop" style="display:inline">'harris'</span><span data-if="c" style="display:none">"harris"</span><span data-if="cpp" style="display:none">"harris"</span><span data-if="com" style="display:none">"harris"</span><span data-if="dotnet" style="display:none">"harris"</span><span data-if="python" style="display:none">"harris"</span></i> :</b></dt>
<dd>

<dl class="generic">

<dt><b></b></dt>
<dd><p>
 [<i><span data-if="hdevelop" style="display:inline">'sigma_grad'</span><span data-if="c" style="display:none">"sigma_grad"</span><span data-if="cpp" style="display:none">"sigma_grad"</span><span data-if="com" style="display:none">"sigma_grad"</span><span data-if="dotnet" style="display:none">"sigma_grad"</span><span data-if="python" style="display:none">"sigma_grad"</span></i>, <i><span data-if="hdevelop" style="display:inline">'sigma_smooth'</span><span data-if="c" style="display:none">"sigma_smooth"</span><span data-if="cpp" style="display:none">"sigma_smooth"</span><span data-if="com" style="display:none">"sigma_smooth"</span><span data-if="dotnet" style="display:none">"sigma_smooth"</span><span data-if="python" style="display:none">"sigma_smooth"</span></i>, <i><span data-if="hdevelop" style="display:inline">'alpha'</span><span data-if="c" style="display:none">"alpha"</span><span data-if="cpp" style="display:none">"alpha"</span><span data-if="com" style="display:none">"alpha"</span><span data-if="dotnet" style="display:none">"alpha"</span><span data-if="python" style="display:none">"alpha"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></i>]
</p></dd>

<dt><b></b></dt>
<dd><p>
 <i>[0.7, 2.0, 0.08, 1000]</i>
</p></dd>
</dl>
</dd>

<dt><b> <i><span data-if="hdevelop" style="display:inline">'harris_binomial'</span><span data-if="c" style="display:none">"harris_binomial"</span><span data-if="cpp" style="display:none">"harris_binomial"</span><span data-if="com" style="display:none">"harris_binomial"</span><span data-if="dotnet" style="display:none">"harris_binomial"</span><span data-if="python" style="display:none">"harris_binomial"</span></i> :</b></dt>
<dd>

<dl class="generic">

<dt><b></b></dt>
<dd><p>
 [<i><span data-if="hdevelop" style="display:inline">'mask_size_grd'</span><span data-if="c" style="display:none">"mask_size_grd"</span><span data-if="cpp" style="display:none">"mask_size_grd"</span><span data-if="com" style="display:none">"mask_size_grd"</span><span data-if="dotnet" style="display:none">"mask_size_grd"</span><span data-if="python" style="display:none">"mask_size_grd"</span></i>, <i><span data-if="hdevelop" style="display:inline">'mask_size_smooth'</span><span data-if="c" style="display:none">"mask_size_smooth"</span><span data-if="cpp" style="display:none">"mask_size_smooth"</span><span data-if="com" style="display:none">"mask_size_smooth"</span><span data-if="dotnet" style="display:none">"mask_size_smooth"</span><span data-if="python" style="display:none">"mask_size_smooth"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'alpha'</span><span data-if="c" style="display:none">"alpha"</span><span data-if="cpp" style="display:none">"alpha"</span><span data-if="com" style="display:none">"alpha"</span><span data-if="dotnet" style="display:none">"alpha"</span><span data-if="python" style="display:none">"alpha"</span></i>, <i><span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></i>, <i><span data-if="hdevelop" style="display:inline">'subpix'</span><span data-if="c" style="display:none">"subpix"</span><span data-if="cpp" style="display:none">"subpix"</span><span data-if="com" style="display:none">"subpix"</span><span data-if="dotnet" style="display:none">"subpix"</span><span data-if="python" style="display:none">"subpix"</span></i>]
</p></dd>

<dt><b></b></dt>
<dd><p>
 <i><span data-if="hdevelop" style="display:inline">[5, 15, 0.08, 1000, 'on']</span><span data-if="c" style="display:none">[5, 15, 0.08, 1000, "on"]</span><span data-if="cpp" style="display:none">[5, 15, 0.08, 1000, "on"]</span><span data-if="com" style="display:none">[5, 15, 0.08, 1000, "on"]</span><span data-if="dotnet" style="display:none">[5, 15, 0.08, 1000, "on"]</span><span data-if="python" style="display:none">[5, 15, 0.08, 1000, "on"]</span></i>
</p></dd>
</dl>
</dd>
</dl>
<p>Further details on the meaning of those parameters can be found in the
descriptions of <a href="points_harris.html"><code><span data-if="hdevelop" style="display:inline">points_harris</span><span data-if="c" style="display:none">points_harris</span><span data-if="cpp" style="display:none">PointsHarris</span><span data-if="com" style="display:none">PointsHarris</span><span data-if="dotnet" style="display:none">PointsHarris</span><span data-if="python" style="display:none">points_harris</span></code></a>, <a href="points_harris_binomial.html"><code><span data-if="hdevelop" style="display:inline">points_harris_binomial</span><span data-if="c" style="display:none">points_harris_binomial</span><span data-if="cpp" style="display:none">PointsHarrisBinomial</span><span data-if="com" style="display:none">PointsHarrisBinomial</span><span data-if="dotnet" style="display:none">PointsHarrisBinomial</span><span data-if="python" style="display:none">points_harris_binomial</span></code></a>
and <a href="points_lepetit.html"><code><span data-if="hdevelop" style="display:inline">points_lepetit</span><span data-if="c" style="display:none">points_lepetit</span><span data-if="cpp" style="display:none">PointsLepetit</span><span data-if="com" style="display:none">PointsLepetit</span><span data-if="dotnet" style="display:none">PointsLepetit</span><span data-if="python" style="display:none">points_lepetit</span></code></a>, respectively. If an empty tuple is passed
or a parameter is not provided in <a href="#DetectorParamName"><i><code><span data-if="hdevelop" style="display:inline">DetectorParamName</span><span data-if="c" style="display:none">DetectorParamName</span><span data-if="cpp" style="display:none">DetectorParamName</span><span data-if="com" style="display:none">DetectorParamName</span><span data-if="dotnet" style="display:none">detectorParamName</span><span data-if="python" style="display:none">detector_param_name</span></code></i></a>, the above
mentioned default values are taken.
</p>
<p>While adjusting 该算子 parameters it should be aimed that a set of
50 to 450 feature points is extracted (depending on the texture and size
of <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>), which are uniformly distributed over the
template's ROI. Therefore, it is recommended to run the point operator
of choice in advance and visualize the results by
<a href="gen_cross_contour_xld.html"><code><span data-if="hdevelop" style="display:inline">gen_cross_contour_xld</span><span data-if="c" style="display:none">gen_cross_contour_xld</span><span data-if="cpp" style="display:none">GenCrossContourXld</span><span data-if="com" style="display:none">GenCrossContourXld</span><span data-if="dotnet" style="display:none">GenCrossContourXld</span><span data-if="python" style="display:none">gen_cross_contour_xld</span></code></a>. In most cases it is sufficient to use the
default setting.
</p>
<h3>Descriptor parameters</h3>
<p>A point descriptor is a classifier, which builds characteristic
descriptions of the gray-value neighborhood for interest points.
Currently the descriptor is implemented with the so-called
<i>randomized ferns</i>, which learns the polarity of the
gray-value differences of pairs of pixels certain at <i>random</i>
locations in the surrounding area of the interest point. The descriptor
is later used in <a href="find_uncalib_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></code></a> to classify
interest points in the search image, or in other words: to identify
(match) potential model points in the search image.
</p>
<p>The descriptor needs to store only the projectively <i>stable</i>
interest points (which will appear in many projective views of the
template). To assess the <i>stability</i> of the interest points,
a simulation is performed: <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a> undergoes many affine
transformations and points that can be extracted in most of the views
are considered <i>stable</i>. The affine transformations are a good
approximation of the projective transformations within a local
neighborhood of the interest points.
</p>
<p>The following descriptor parameters can be set with
<a href="#DescriptorParamName"><i><code><span data-if="hdevelop" style="display:inline">DescriptorParamName</span><span data-if="c" style="display:none">DescriptorParamName</span><span data-if="cpp" style="display:none">DescriptorParamName</span><span data-if="com" style="display:none">DescriptorParamName</span><span data-if="dotnet" style="display:none">descriptorParamName</span><span data-if="python" style="display:none">descriptor_param_name</span></code></i></a> and <a href="#DescriptorParamValue"><i><code><span data-if="hdevelop" style="display:inline">DescriptorParamValue</span><span data-if="c" style="display:none">DescriptorParamValue</span><span data-if="cpp" style="display:none">DescriptorParamValue</span><span data-if="com" style="display:none">DescriptorParamValue</span><span data-if="dotnet" style="display:none">descriptorParamValue</span><span data-if="python" style="display:none">descriptor_param_value</span></code></i></a>:
</p>
<p><b>Descriptor size parameters:</b>
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'depth'</span><span data-if="c" style="display:none">"depth"</span><span data-if="cpp" style="display:none">"depth"</span><span data-if="com" style="display:none">"depth"</span><span data-if="dotnet" style="display:none">"depth"</span><span data-if="python" style="display:none">"depth"</span></i>:</b></dt>
<dd>
<p>

depth of a classification fern. A deeper randomized fern can better
discriminate interest points. However, the memory requirement for the
fern grows by a factor 2 to the power of <i><span data-if="hdevelop" style="display:inline">'depth'</span><span data-if="c" style="display:none">"depth"</span><span data-if="cpp" style="display:none">"depth"</span><span data-if="com" style="display:none">"depth"</span><span data-if="dotnet" style="display:none">"depth"</span><span data-if="python" style="display:none">"depth"</span></i>. 
Typical values are [<i>5</i> .. <i>11</i>],
default value is <i>11</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'number_ferns'</span><span data-if="c" style="display:none">"number_ferns"</span><span data-if="cpp" style="display:none">"number_ferns"</span><span data-if="com" style="display:none">"number_ferns"</span><span data-if="dotnet" style="display:none">"number_ferns"</span><span data-if="python" style="display:none">"number_ferns"</span></i>:</b></dt>
<dd>
<p>

number of fern structures used. Using more ferns increases the
recognition robustness, however it also increases the runtime of
the matching. If the memory needed for the descriptor should be small,
many ferns with only a small depth should be used (e.g.,
<i><span data-if="hdevelop" style="display:inline">'number_ferns'</span><span data-if="c" style="display:none">"number_ferns"</span><span data-if="cpp" style="display:none">"number_ferns"</span><span data-if="com" style="display:none">"number_ferns"</span><span data-if="dotnet" style="display:none">"number_ferns"</span><span data-if="python" style="display:none">"number_ferns"</span></i>=<i>150</i>, <i><span data-if="hdevelop" style="display:inline">'depth'</span><span data-if="c" style="display:none">"depth"</span><span data-if="cpp" style="display:none">"depth"</span><span data-if="com" style="display:none">"depth"</span><span data-if="dotnet" style="display:none">"depth"</span><span data-if="python" style="display:none">"depth"</span></i>=<i>5</i>).
If detection speed is more important, fewer ferns of larger depth
should be used (e.g., <i><span data-if="hdevelop" style="display:inline">'number_ferns'</span><span data-if="c" style="display:none">"number_ferns"</span><span data-if="cpp" style="display:none">"number_ferns"</span><span data-if="com" style="display:none">"number_ferns"</span><span data-if="dotnet" style="display:none">"number_ferns"</span><span data-if="python" style="display:none">"number_ferns"</span></i>=<i>10</i>,
<i><span data-if="hdevelop" style="display:inline">'depth'</span><span data-if="c" style="display:none">"depth"</span><span data-if="cpp" style="display:none">"depth"</span><span data-if="com" style="display:none">"depth"</span><span data-if="dotnet" style="display:none">"depth"</span><span data-if="python" style="display:none">"depth"</span></i>=<i>11</i>). 
Typical values are [<i>1</i> .. <i>150</i>],
default value is <i>30</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'patch_size'</span><span data-if="c" style="display:none">"patch_size"</span><span data-if="cpp" style="display:none">"patch_size"</span><span data-if="com" style="display:none">"patch_size"</span><span data-if="dotnet" style="display:none">"patch_size"</span><span data-if="python" style="display:none">"patch_size"</span></i>:</b></dt>
<dd><p>

side length of a quadratic neighborhood describing a point of interest.
Too large values of this parameter can influence the run time. 
Typical values are [<i>15</i> .. <i>33</i>],
default value is <i>17</i>.
</p></dd>
</dl>
<p>Summing up, the parameters <i><span data-if="hdevelop" style="display:inline">'depth'</span><span data-if="c" style="display:none">"depth"</span><span data-if="cpp" style="display:none">"depth"</span><span data-if="com" style="display:none">"depth"</span><span data-if="dotnet" style="display:none">"depth"</span><span data-if="python" style="display:none">"depth"</span></i>, <i><span data-if="hdevelop" style="display:inline">'number_ferns'</span><span data-if="c" style="display:none">"number_ferns"</span><span data-if="cpp" style="display:none">"number_ferns"</span><span data-if="com" style="display:none">"number_ferns"</span><span data-if="dotnet" style="display:none">"number_ferns"</span><span data-if="python" style="display:none">"number_ferns"</span></i>
and <i><span data-if="hdevelop" style="display:inline">'patch_size'</span><span data-if="c" style="display:none">"patch_size"</span><span data-if="cpp" style="display:none">"patch_size"</span><span data-if="com" style="display:none">"patch_size"</span><span data-if="dotnet" style="display:none">"patch_size"</span><span data-if="python" style="display:none">"patch_size"</span></i> allow a transparent control over detection
robustness, speed and memory consumption.
</p>
<p><b>Simulation parameters:</b>
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'tilt'</span><span data-if="c" style="display:none">"tilt"</span><span data-if="cpp" style="display:none">"tilt"</span><span data-if="com" style="display:none">"tilt"</span><span data-if="dotnet" style="display:none">"tilt"</span><span data-if="python" style="display:none">"tilt"</span></i>:</b></dt>
<dd>
<p>
 switches on or off the projective
transformations during the simulation phase. When switched on, the
robustness of the model is improved and objects with bigger tilts can
be found. When switched off, training time can be significantly reduced
and the model is still able to recognize projectively invariant objects.
 Possible values are [<i><span data-if="hdevelop" style="display:inline">'on'</span><span data-if="c" style="display:none">"on"</span><span data-if="cpp" style="display:none">"on"</span><span data-if="com" style="display:none">"on"</span><span data-if="dotnet" style="display:none">"on"</span><span data-if="python" style="display:none">"on"</span></i>, <i><span data-if="hdevelop" style="display:inline">'off'</span><span data-if="c" style="display:none">"off"</span><span data-if="cpp" style="display:none">"off"</span><span data-if="com" style="display:none">"off"</span><span data-if="dotnet" style="display:none">"off"</span><span data-if="python" style="display:none">"off"</span></i>],
default value is <i><span data-if="hdevelop" style="display:inline">'on'</span><span data-if="c" style="display:none">"on"</span><span data-if="cpp" style="display:none">"on"</span><span data-if="com" style="display:none">"on"</span><span data-if="dotnet" style="display:none">"on"</span><span data-if="python" style="display:none">"on"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_rot'</span><span data-if="c" style="display:none">"min_rot"</span><span data-if="cpp" style="display:none">"min_rot"</span><span data-if="com" style="display:none">"min_rot"</span><span data-if="dotnet" style="display:none">"min_rot"</span><span data-if="python" style="display:none">"min_rot"</span></i>:</b></dt>
<dd>
<p>
 minimal angle of rotation around
the normal vector of <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>. 
Typical values are [<i>-180</i> .. <i>0</i>],
default value is <i>-180</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_rot'</span><span data-if="c" style="display:none">"max_rot"</span><span data-if="cpp" style="display:none">"max_rot"</span><span data-if="com" style="display:none">"max_rot"</span><span data-if="dotnet" style="display:none">"max_rot"</span><span data-if="python" style="display:none">"max_rot"</span></i>:</b></dt>
<dd>
<p>
 maximal angle of rotation around
the normal vector of <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>. 
Typical values are [<i>0</i> .. <i>180</i>],
default value is <i>180</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_scale'</span><span data-if="c" style="display:none">"min_scale"</span><span data-if="cpp" style="display:none">"min_scale"</span><span data-if="com" style="display:none">"min_scale"</span><span data-if="dotnet" style="display:none">"min_scale"</span><span data-if="python" style="display:none">"min_scale"</span></i>:</b></dt>
<dd>
<p>
 minimal scale of
<a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>. 
Typical values are [<i>0.1</i> .. <i>1.0</i>],
default value is <i>0.5</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_scale'</span><span data-if="c" style="display:none">"max_scale"</span><span data-if="cpp" style="display:none">"max_scale"</span><span data-if="com" style="display:none">"max_scale"</span><span data-if="dotnet" style="display:none">"max_scale"</span><span data-if="python" style="display:none">"max_scale"</span></i>:</b></dt>
<dd><p>
 maximal scale of
<a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>. 
Typical values are [<i>1.0</i> .. <i>3.5</i>],
default value is <i>1.4</i>.
</p></dd>
</dl>
<p>The parameters <i><span data-if="hdevelop" style="display:inline">'min_rot'</span><span data-if="c" style="display:none">"min_rot"</span><span data-if="cpp" style="display:none">"min_rot"</span><span data-if="com" style="display:none">"min_rot"</span><span data-if="dotnet" style="display:none">"min_rot"</span><span data-if="python" style="display:none">"min_rot"</span></i>, <i><span data-if="hdevelop" style="display:inline">'max_rot'</span><span data-if="c" style="display:none">"max_rot"</span><span data-if="cpp" style="display:none">"max_rot"</span><span data-if="com" style="display:none">"max_rot"</span><span data-if="dotnet" style="display:none">"max_rot"</span><span data-if="python" style="display:none">"max_rot"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'min_scale'</span><span data-if="c" style="display:none">"min_scale"</span><span data-if="cpp" style="display:none">"min_scale"</span><span data-if="com" style="display:none">"min_scale"</span><span data-if="dotnet" style="display:none">"min_scale"</span><span data-if="python" style="display:none">"min_scale"</span></i>, and <i><span data-if="hdevelop" style="display:inline">'max_scale'</span><span data-if="c" style="display:none">"max_scale"</span><span data-if="cpp" style="display:none">"max_scale"</span><span data-if="com" style="display:none">"max_scale"</span><span data-if="dotnet" style="display:none">"max_scale"</span><span data-if="python" style="display:none">"max_scale"</span></i> allow to manually set
which affine transformed views of the template are used to train the
descriptor. Setting these parameters is useful to reduce training time
especially in combination with the parameter <i><span data-if="hdevelop" style="display:inline">'tilt'</span><span data-if="c" style="display:none">"tilt"</span><span data-if="cpp" style="display:none">"tilt"</span><span data-if="com" style="display:none">"tilt"</span><span data-if="dotnet" style="display:none">"tilt"</span><span data-if="python" style="display:none">"tilt"</span></i>. Be aware
that these parameters have direct influence on the results of
<a href="find_uncalib_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></code></a> and therefore have to be set
carefully. If, for example, the range of rotation is  restricted from
<i><span data-if="hdevelop" style="display:inline">'min_rot'</span><span data-if="c" style="display:none">"min_rot"</span><span data-if="cpp" style="display:none">"min_rot"</span><span data-if="com" style="display:none">"min_rot"</span><span data-if="dotnet" style="display:none">"min_rot"</span><span data-if="python" style="display:none">"min_rot"</span></i> = -10 to <i><span data-if="hdevelop" style="display:inline">'max_rot'</span><span data-if="c" style="display:none">"max_rot"</span><span data-if="cpp" style="display:none">"max_rot"</span><span data-if="com" style="display:none">"max_rot"</span><span data-if="dotnet" style="display:none">"max_rot"</span><span data-if="python" style="display:none">"max_rot"</span></i> = 10 it is not possible
to find views of <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a> rotated by an angle outside that
scope. A limited training range requires less ferns / ferns' depths to
find <a href="#Template"><i><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></i></a>. In such a case the number and depth of the
ferns can be further reduced, which optimizes the model.
</p>
<h3>Remarks</h3>
<p>Please note that depending on your hardware, the processing time for
training the randomized ferns can vary between several seconds to some
minutes. Therefore, a once trained model can be saved and loaded with
<a href="write_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">write_descriptor_model</span><span data-if="c" style="display:none">write_descriptor_model</span><span data-if="cpp" style="display:none">WriteDescriptorModel</span><span data-if="com" style="display:none">WriteDescriptorModel</span><span data-if="dotnet" style="display:none">WriteDescriptorModel</span><span data-if="python" style="display:none">write_descriptor_model</span></code></a> and <a href="read_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">read_descriptor_model</span><span data-if="c" style="display:none">read_descriptor_model</span><span data-if="cpp" style="display:none">ReadDescriptorModel</span><span data-if="com" style="display:none">ReadDescriptorModel</span><span data-if="dotnet" style="display:none">ReadDescriptorModel</span><span data-if="python" style="display:none">read_descriptor_model</span></code></a>.
</p>
<p>The parameters and the location of the final descriptor points can be
determined with <a href="get_descriptor_model_params.html"><code><span data-if="hdevelop" style="display:inline">get_descriptor_model_params</span><span data-if="c" style="display:none">get_descriptor_model_params</span><span data-if="cpp" style="display:none">GetDescriptorModelParams</span><span data-if="com" style="display:none">GetDescriptorModelParams</span><span data-if="dotnet" style="display:none">GetDescriptorModelParams</span><span data-if="python" style="display:none">get_descriptor_model_params</span></code></a> and
<a href="get_descriptor_model_points.html"><code><span data-if="hdevelop" style="display:inline">get_descriptor_model_points</span><span data-if="c" style="display:none">get_descriptor_model_points</span><span data-if="cpp" style="display:none">GetDescriptorModelPoints</span><span data-if="com" style="display:none">GetDescriptorModelPoints</span><span data-if="dotnet" style="display:none">GetDescriptorModelPoints</span><span data-if="python" style="display:none">get_descriptor_model_points</span></code></a>.
</p>
<p><code><span data-if="hdevelop" style="display:inline">create_uncalib_descriptor_model</span><span data-if="c" style="display:none">create_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">CreateUncalibDescriptorModel</span><span data-if="com" style="display:none">CreateUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">CreateUncalibDescriptorModel</span><span data-if="python" style="display:none">create_uncalib_descriptor_model</span></code> stores the detector type,
detector parameters, and descriptor parameters, which are used in
every succeeding call of <a href="find_uncalib_descriptor_model.html"><code><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></code></a>.
The reference point (origin) of the model is the center of gravity
of the template's ROI. Its coordinates can be changed by
<a href="set_descriptor_model_origin.html"><code><span data-if="hdevelop" style="display:inline">set_descriptor_model_origin</span><span data-if="c" style="display:none">set_descriptor_model_origin</span><span data-if="cpp" style="display:none">SetDescriptorModelOrigin</span><span data-if="com" style="display:none">SetDescriptorModelOrigin</span><span data-if="dotnet" style="display:none">SetDescriptorModelOrigin</span><span data-if="python" style="display:none">set_descriptor_model_origin</span></code></a>.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Template" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Template</span><span data-if="c" style="display:none">Template</span><span data-if="cpp" style="display:none">Template</span><span data-if="com" style="display:none">Template</span><span data-if="dotnet" style="display:none">template</span><span data-if="python" style="display:none">template</span></code></b> (input_object)  </span><span>singlechannelimage <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte / uint2)</span>
</div>
<p class="pardesc">Input image whose domain will be used to create
the model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="DetectorType" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DetectorType</span><span data-if="c" style="display:none">DetectorType</span><span data-if="cpp" style="display:none">DetectorType</span><span data-if="com" style="display:none">DetectorType</span><span data-if="dotnet" style="display:none">detectorType</span><span data-if="python" style="display:none">detector_type</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">The type of the detector.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'lepetit'</span>
    <span data-if="c" style="display:none">"lepetit"</span>
    <span data-if="cpp" style="display:none">"lepetit"</span>
    <span data-if="com" style="display:none">"lepetit"</span>
    <span data-if="dotnet" style="display:none">"lepetit"</span>
    <span data-if="python" style="display:none">"lepetit"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'harris'</span><span data-if="c" style="display:none">"harris"</span><span data-if="cpp" style="display:none">"harris"</span><span data-if="com" style="display:none">"harris"</span><span data-if="dotnet" style="display:none">"harris"</span><span data-if="python" style="display:none">"harris"</span>, <span data-if="hdevelop" style="display:inline">'harris_binomial'</span><span data-if="c" style="display:none">"harris_binomial"</span><span data-if="cpp" style="display:none">"harris_binomial"</span><span data-if="com" style="display:none">"harris_binomial"</span><span data-if="dotnet" style="display:none">"harris_binomial"</span><span data-if="python" style="display:none">"harris_binomial"</span>, <span data-if="hdevelop" style="display:inline">'lepetit'</span><span data-if="c" style="display:none">"lepetit"</span><span data-if="cpp" style="display:none">"lepetit"</span><span data-if="com" style="display:none">"lepetit"</span><span data-if="dotnet" style="display:none">"lepetit"</span><span data-if="python" style="display:none">"lepetit"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="DetectorParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DetectorParamName</span><span data-if="c" style="display:none">DetectorParamName</span><span data-if="cpp" style="display:none">DetectorParamName</span><span data-if="com" style="display:none">DetectorParamName</span><span data-if="dotnet" style="display:none">detectorParamName</span><span data-if="python" style="display:none">detector_param_name</span></code></b> (input_control)  </span><span>attribute.name-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">The detector's parameter names.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'alpha'</span><span data-if="c" style="display:none">"alpha"</span><span data-if="cpp" style="display:none">"alpha"</span><span data-if="com" style="display:none">"alpha"</span><span data-if="dotnet" style="display:none">"alpha"</span><span data-if="python" style="display:none">"alpha"</span>, <span data-if="hdevelop" style="display:inline">'check_neighbor'</span><span data-if="c" style="display:none">"check_neighbor"</span><span data-if="cpp" style="display:none">"check_neighbor"</span><span data-if="com" style="display:none">"check_neighbor"</span><span data-if="dotnet" style="display:none">"check_neighbor"</span><span data-if="python" style="display:none">"check_neighbor"</span>, <span data-if="hdevelop" style="display:inline">'mask_size_grd'</span><span data-if="c" style="display:none">"mask_size_grd"</span><span data-if="cpp" style="display:none">"mask_size_grd"</span><span data-if="com" style="display:none">"mask_size_grd"</span><span data-if="dotnet" style="display:none">"mask_size_grd"</span><span data-if="python" style="display:none">"mask_size_grd"</span>, <span data-if="hdevelop" style="display:inline">'mask_size_smooth'</span><span data-if="c" style="display:none">"mask_size_smooth"</span><span data-if="cpp" style="display:none">"mask_size_smooth"</span><span data-if="com" style="display:none">"mask_size_smooth"</span><span data-if="dotnet" style="display:none">"mask_size_smooth"</span><span data-if="python" style="display:none">"mask_size_smooth"</span>, <span data-if="hdevelop" style="display:inline">'min_check_neighbor_diff'</span><span data-if="c" style="display:none">"min_check_neighbor_diff"</span><span data-if="cpp" style="display:none">"min_check_neighbor_diff"</span><span data-if="com" style="display:none">"min_check_neighbor_diff"</span><span data-if="dotnet" style="display:none">"min_check_neighbor_diff"</span><span data-if="python" style="display:none">"min_check_neighbor_diff"</span>, <span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span>, <span data-if="hdevelop" style="display:inline">'radius'</span><span data-if="c" style="display:none">"radius"</span><span data-if="cpp" style="display:none">"radius"</span><span data-if="com" style="display:none">"radius"</span><span data-if="dotnet" style="display:none">"radius"</span><span data-if="python" style="display:none">"radius"</span>, <span data-if="hdevelop" style="display:inline">'sigma_grad'</span><span data-if="c" style="display:none">"sigma_grad"</span><span data-if="cpp" style="display:none">"sigma_grad"</span><span data-if="com" style="display:none">"sigma_grad"</span><span data-if="dotnet" style="display:none">"sigma_grad"</span><span data-if="python" style="display:none">"sigma_grad"</span>, <span data-if="hdevelop" style="display:inline">'sigma_smooth'</span><span data-if="c" style="display:none">"sigma_smooth"</span><span data-if="cpp" style="display:none">"sigma_smooth"</span><span data-if="com" style="display:none">"sigma_smooth"</span><span data-if="dotnet" style="display:none">"sigma_smooth"</span><span data-if="python" style="display:none">"sigma_smooth"</span>, <span data-if="hdevelop" style="display:inline">'subpix'</span><span data-if="c" style="display:none">"subpix"</span><span data-if="cpp" style="display:none">"subpix"</span><span data-if="com" style="display:none">"subpix"</span><span data-if="dotnet" style="display:none">"subpix"</span><span data-if="python" style="display:none">"subpix"</span>, <span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="DetectorParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DetectorParamValue</span><span data-if="c" style="display:none">DetectorParamValue</span><span data-if="cpp" style="display:none">DetectorParamValue</span><span data-if="com" style="display:none">DetectorParamValue</span><span data-if="dotnet" style="display:none">detectorParamValue</span><span data-if="python" style="display:none">detector_param_value</span></code></b> (input_control)  </span><span>attribute.value-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Values of the detector's parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.08, 1, 1.2, 3, 15, 30, 1000, <span data-if="hdevelop" style="display:inline">'on'</span><span data-if="c" style="display:none">"on"</span><span data-if="cpp" style="display:none">"on"</span><span data-if="com" style="display:none">"on"</span><span data-if="dotnet" style="display:none">"on"</span><span data-if="python" style="display:none">"on"</span>, <span data-if="hdevelop" style="display:inline">'off'</span><span data-if="c" style="display:none">"off"</span><span data-if="cpp" style="display:none">"off"</span><span data-if="com" style="display:none">"off"</span><span data-if="dotnet" style="display:none">"off"</span><span data-if="python" style="display:none">"off"</span>, <span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span>, <span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="DescriptorParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DescriptorParamName</span><span data-if="c" style="display:none">DescriptorParamName</span><span data-if="cpp" style="display:none">DescriptorParamName</span><span data-if="com" style="display:none">DescriptorParamName</span><span data-if="dotnet" style="display:none">descriptorParamName</span><span data-if="python" style="display:none">descriptor_param_name</span></code></b> (input_control)  </span><span>attribute.name-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">The descriptor's parameter names.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'depth'</span><span data-if="c" style="display:none">"depth"</span><span data-if="cpp" style="display:none">"depth"</span><span data-if="com" style="display:none">"depth"</span><span data-if="dotnet" style="display:none">"depth"</span><span data-if="python" style="display:none">"depth"</span>, <span data-if="hdevelop" style="display:inline">'max_rot'</span><span data-if="c" style="display:none">"max_rot"</span><span data-if="cpp" style="display:none">"max_rot"</span><span data-if="com" style="display:none">"max_rot"</span><span data-if="dotnet" style="display:none">"max_rot"</span><span data-if="python" style="display:none">"max_rot"</span>, <span data-if="hdevelop" style="display:inline">'max_scale'</span><span data-if="c" style="display:none">"max_scale"</span><span data-if="cpp" style="display:none">"max_scale"</span><span data-if="com" style="display:none">"max_scale"</span><span data-if="dotnet" style="display:none">"max_scale"</span><span data-if="python" style="display:none">"max_scale"</span>, <span data-if="hdevelop" style="display:inline">'min_rot'</span><span data-if="c" style="display:none">"min_rot"</span><span data-if="cpp" style="display:none">"min_rot"</span><span data-if="com" style="display:none">"min_rot"</span><span data-if="dotnet" style="display:none">"min_rot"</span><span data-if="python" style="display:none">"min_rot"</span>, <span data-if="hdevelop" style="display:inline">'min_scale'</span><span data-if="c" style="display:none">"min_scale"</span><span data-if="cpp" style="display:none">"min_scale"</span><span data-if="com" style="display:none">"min_scale"</span><span data-if="dotnet" style="display:none">"min_scale"</span><span data-if="python" style="display:none">"min_scale"</span>, <span data-if="hdevelop" style="display:inline">'number_ferns'</span><span data-if="c" style="display:none">"number_ferns"</span><span data-if="cpp" style="display:none">"number_ferns"</span><span data-if="com" style="display:none">"number_ferns"</span><span data-if="dotnet" style="display:none">"number_ferns"</span><span data-if="python" style="display:none">"number_ferns"</span>, <span data-if="hdevelop" style="display:inline">'patch_size'</span><span data-if="c" style="display:none">"patch_size"</span><span data-if="cpp" style="display:none">"patch_size"</span><span data-if="com" style="display:none">"patch_size"</span><span data-if="dotnet" style="display:none">"patch_size"</span><span data-if="python" style="display:none">"patch_size"</span>, <span data-if="hdevelop" style="display:inline">'tilt'</span><span data-if="c" style="display:none">"tilt"</span><span data-if="cpp" style="display:none">"tilt"</span><span data-if="com" style="display:none">"tilt"</span><span data-if="dotnet" style="display:none">"tilt"</span><span data-if="python" style="display:none">"tilt"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="DescriptorParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DescriptorParamValue</span><span data-if="c" style="display:none">DescriptorParamValue</span><span data-if="cpp" style="display:none">DescriptorParamValue</span><span data-if="com" style="display:none">DescriptorParamValue</span><span data-if="dotnet" style="display:none">descriptorParamValue</span><span data-if="python" style="display:none">descriptor_param_value</span></code></b> (input_control)  </span><span>attribute.value-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Values of the descriptor's parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.5, 1.4, 11, 21, 30, -180, 180, <span data-if="hdevelop" style="display:inline">'on'</span><span data-if="c" style="display:none">"on"</span><span data-if="cpp" style="display:none">"on"</span><span data-if="com" style="display:none">"on"</span><span data-if="dotnet" style="display:none">"on"</span><span data-if="python" style="display:none">"on"</span>, <span data-if="hdevelop" style="display:inline">'off'</span><span data-if="c" style="display:none">"off"</span><span data-if="cpp" style="display:none">"off"</span><span data-if="com" style="display:none">"off"</span><span data-if="dotnet" style="display:none">"off"</span><span data-if="python" style="display:none">"off"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Seed" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Seed</span><span data-if="c" style="display:none">Seed</span><span data-if="cpp" style="display:none">Seed</span><span data-if="com" style="display:none">Seed</span><span data-if="dotnet" style="display:none">seed</span><span data-if="python" style="display:none">seed</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">The seed for the random number generator.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>42</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></b> (output_control)  </span><span>descriptor_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HDescriptorModel.html">HDescriptorModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">The handle to the descriptor model.</p>
</div>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="points_lepetit.html"><span data-if="hdevelop" style="display:inline">points_lepetit</span><span data-if="c" style="display:none">points_lepetit</span><span data-if="cpp" style="display:none">PointsLepetit</span><span data-if="com" style="display:none">PointsLepetit</span><span data-if="dotnet" style="display:none">PointsLepetit</span><span data-if="python" style="display:none">points_lepetit</span></a></code>, 
<code><a href="points_harris.html"><span data-if="hdevelop" style="display:inline">points_harris</span><span data-if="c" style="display:none">points_harris</span><span data-if="cpp" style="display:none">PointsHarris</span><span data-if="com" style="display:none">PointsHarris</span><span data-if="dotnet" style="display:none">PointsHarris</span><span data-if="python" style="display:none">points_harris</span></a></code>, 
<code><a href="reduce_domain.html"><span data-if="hdevelop" style="display:inline">reduce_domain</span><span data-if="c" style="display:none">reduce_domain</span><span data-if="cpp" style="display:none">ReduceDomain</span><span data-if="com" style="display:none">ReduceDomain</span><span data-if="dotnet" style="display:none">ReduceDomain</span><span data-if="python" style="display:none">reduce_domain</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="get_descriptor_model_params.html"><span data-if="hdevelop" style="display:inline">get_descriptor_model_params</span><span data-if="c" style="display:none">get_descriptor_model_params</span><span data-if="cpp" style="display:none">GetDescriptorModelParams</span><span data-if="com" style="display:none">GetDescriptorModelParams</span><span data-if="dotnet" style="display:none">GetDescriptorModelParams</span><span data-if="python" style="display:none">get_descriptor_model_params</span></a></code>, 
<code><a href="find_uncalib_descriptor_model.html"><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="get_descriptor_model_params.html"><span data-if="hdevelop" style="display:inline">get_descriptor_model_params</span><span data-if="c" style="display:none">get_descriptor_model_params</span><span data-if="cpp" style="display:none">GetDescriptorModelParams</span><span data-if="com" style="display:none">GetDescriptorModelParams</span><span data-if="dotnet" style="display:none">GetDescriptorModelParams</span><span data-if="python" style="display:none">get_descriptor_model_params</span></a></code>, 
<code><a href="find_uncalib_descriptor_model.html"><span data-if="hdevelop" style="display:inline">find_uncalib_descriptor_model</span><span data-if="c" style="display:none">find_uncalib_descriptor_model</span><span data-if="cpp" style="display:none">FindUncalibDescriptorModel</span><span data-if="com" style="display:none">FindUncalibDescriptorModel</span><span data-if="dotnet" style="display:none">FindUncalibDescriptorModel</span><span data-if="python" style="display:none">find_uncalib_descriptor_model</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

V. Lepetit and P. Fua: “Keypoint Recognition using Randomized Trees.“
IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 28,
Nr. 9, pp. 1465-1479, 2006.
<br>
M. Ozuysal, P. Fua, and V. Lepetit: “Fast Keypoint Recognition in Ten Lines
of Code.“
In  Proceedings of Conference on Computer Vision and Pattern Recognition,
2007.
</p>
<h2 id="sec_module">模块</h2>
<p>
Matching</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
